// 导入数据操作模块
const db = require('../../db/index.js');
// 导入解析处理密码包
const bcrypt = require('bcryptjs');
// TODO: 获取用户信息
exports.getUserInfo = (req,res) => {
    // 定义查询用户信息的SQL语句
    const sql = `SELECT id,username,nickname,email,user_pic FROM ev_users WHERE id=?`;
    // 调用db.query
    db.query(sql,req.user['id'],(err,results) => {
        // 执行SQL语句失败
        if(err)return res._text(err);
        // 获取用户信息失败
        if(results.length !== 1)return res._text('获取用户信息失败');
        // 用户信息获取成功
        res.send({
            code: 200,
            status: 0,
            message: '获取用户信息成功',
            data: results[0]
        });
    });
};
// TODO: 修改用户基本信息
exports.updateUserInfo = (req,res) => {
    const sql = 'UPDATE ev_users SET? WHERE id=?';
    db.query(sql,[req.body,req.body.id],(err,results) => {
        // 执行SQL语句失败
        if(err)return res._text(err);
        // 执行SQL语句成功,但影响行数不为1
        if(results.affectedRows !== 1)return res._text('修改用户基本信息失败');
        return res._text('修改用户基本信息成功',0);
    });
};
// TODO: 重置密码
exports.updatePassword = (req,res) => {
    const sqlSrc = 'SELECT * FROM ev_users WHERE id=?';
    db.query(sqlSrc,req.user['id'],(err,results) => {
        // 执行SQL语句失败
        if(err)return res._text(err);
        // 执行SQL语句成功,但影响行数不为1
        if(results.length !== 1)return res._text('用户不存在');
        // 判断用户输入的密码是否正确
        const compareResults = bcrypt.compareSync(req.body.oldPwd,results[0].password);
        if(!compareResults)return res._text('旧密码错误');
        // 更新数据库密码-定义更新的SQL语句
        const sql = 'UPDATE ev_users SET password=? WHERE id=?';
        // 对新密码进行加密处理
        const newPwd = bcrypt.hashSync(req.body.newPwd,10);
        // 调用db.query()执行SQL语句
        db.query(sql,[newPwd,req.user.id],(err,results) => {
        // 执行SQL语句失败
        if(err)return res._text(err);
        // 获取用户信息失败
        if(results.affectedRows !== 1)return res._text('修改密码失败');
        // 修改密码成功
        res._text('修改密码成功',0);
        });
    });
};
// TODO: 更新用户头像
exports.updateAvatar = (req,res) => {
    const sql = 'UPDATE ev_users SET user_pic=? WHERE id=?';
    db.query(sql,[req.body.avatar,req.user.id],(err,results) => {
        // 执行SQL语句失败
        if(err)return res._text(err);
        // 执行SQL语句成功,但影响行数不为1
        if(results.affectedRows !== 1)return res._text('修改头像失败');
        // 修改头像成功
        return res._text('修改头像成功',0);
    });
};